package com.ruoyi.buy.service;

import com.ruoyi.buy.domain.entity.PO.InvInventoryInfo;
import com.ruoyi.buy.domain.entity.inv0002.Inv0002ImportData;
import com.ruoyi.buy.domain.entity.inv0002.Inv0002TableData;
import com.ruoyi.buy.domain.entity.inv0002.Inv0002ViewData;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 库存信息Service接口
 * 
 * @author ruoyi
 * @date 2023-12-18
 */
@Transactional
public interface IInvInventoryInfoService 
{
    /**
     * 查询库存信息
     * 
     * @param id 库存信息主键
     * @return 库存信息
     */
    public InvInventoryInfo selectInvInventoryInfoById(Long id);

    /**
     * 查询库存信息列表
     * 
     * @param invInventoryInfo 库存信息
     * @return 库存信息集合
     */
    public List<Inv0002TableData> selectInvInventoryInfoList(InvInventoryInfo invInventoryInfo);

    /**
     * 新增库存信息
     * 
     * @param invInventoryInfo 库存信息
     * @return 结果
     */
    public int insertInvInventoryInfo(InvInventoryInfo invInventoryInfo);

    /**
     * 修改库存信息
     * 
     * @param invInventoryInfo 库存信息
     * @return 结果
     */
    public int updateInvInventoryInfo(InvInventoryInfo invInventoryInfo);

    /**
     * 批量删除库存信息
     * 
     * @param ids 需要删除的库存信息主键集合
     * @return 结果
     */
    public int deleteInvInventoryInfoByIds(Long[] ids);

    /**
     * 删除库存信息信息
     * 
     * @param id 库存信息主键
     * @return 结果
     */
    public int deleteInvInventoryInfoById(Long id);

    public List<Inv0002ViewData> getViewData(InvInventoryInfo invInventoryInfo);

    public int locationChange(List<InvInventoryInfo> invInventoryInfos);

    public int importData(List<Inv0002ImportData> list) throws Exception;
}
